package com.JavaBasic;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

public class CollectionDemo {
	public static void main(String[] args) {
		Collection<String> arrList1 = new ArrayList<String>();
		
		//向集合中添加元素
		arrList1.add("a");
		arrList1.add("b");
		arrList1.add("c");
		System.out.println("arrayList1集合是:" + arrList1);
		
		// 获取集合元素的个数
		int size = arrList1.size();
		System.out.println("集合arrayList1中有" + size + "个元素");
		
		// 判断集合是否包含某个元素
		boolean contains = arrList1.contains("a");
		System.out.println("集合arrayList1中是否包含a：" + (contains ?  "是" : "否"));
		
		// 移除集合元素
		arrList1.remove("a");
		System.out.println("arrayList1中移除a元素后的集合:" + arrList1);
		
		
		// 清空集合
		arrList1.clear();
		System.out.println("清空后的arrayList1集合:" + arrList1);
		
		// 比较两个集合
		Collection<String> arrList2 = new ArrayList<String>();
		arrList2.add("a");
		arrList2.add("b");
		arrList2.add("c");
		boolean eq = arrList1.equals(arrList2);
		System.out.println("arrayList1是否equals arrayList2:" + (eq ? "是" : "否"));

		// 判断集合是否为空
		boolean empty = arrList1.isEmpty();
		System.out.println("arrayList1是否为空:" + (empty ? "是" : "否"));
		
		// 把集合转换成数组
		Object[] arr = arrList2.toArray();
		System.out.println("把arrayList2集合转换成数组后:" + Arrays.toString(arr)) ;
		
		
		Collection<String> arrayList3 = new ArrayList<String>();
		arrayList3.add("d");
		arrayList3.add("e");
		arrayList3.add("f");
		System.out.println("arrayList3是:" + arrayList3);
		
		// 添加一个集合的所有元素到例外一个集合
		arrList2.addAll(arrayList3);
		System.out.println("添加arrayList3的所有元素到arrayList2后,arrayList2=" + arrList2);
		
		// 判断一个集合是否包含另外一个集合所有元素
		boolean cont = arrList2.containsAll(arrayList3);
		System.out.println("arrayList2是否包含arrayList3的所有元素:" + (cont ? "是" : "否"));
		
		// 移除一个集合中包含的另一个集合中的元素(移除的是两个集合的交集)
		arrList2.removeAll(arrayList3);
		System.out.println("arrayList2移除arrayList3中所有的元素后，arrayList2=" + arrList2);
		
		// 两个集合取交集
		arrList2.retainAll(arrayList3);
		System.out.println("arrayList2和arrayList3取交集后,arrayList2=" + arrList2);
		
		// 结合的迭代
		Iterator<String> iterator = arrayList3.iterator();
		System.out.println("迭代arrayList3：");
		while (iterator.hasNext()) {
			String string = (String) iterator.next();
			System.out.println(string);
		}
	}
}
